---
title: "Use Case Diagram — RVC Controller SW"
---
flowchart LR
    OS["👤 Obstacle\nSensor"]
    DS["👤 Dust\nSensor"]

    subgraph SYS["RVC Controller SW"]
        UC01("UC-01\nPerform Normal\nCleaning")
        UC02("UC-02\nDetect Obstacle\nFront")
        UC03("UC-03\nAvoid Front\nObstacle")
        UC04("UC-04\nDetect Obstacle\nLeft & Right")
        UC05("UC-05\nAvoid All-Direction\nObstacle")
        UC06("UC-06\nDetect Dust")
        UC07("UC-07\nBoost Cleaning\nPower")
        UC08("UC-08\nHandle Sensor\nError")
    end

    OS --> UC02
    OS --> UC04
    OS --> UC08
    DS --> UC06
    DS --> UC08

    UC03 -. "extend" .-> UC01
    UC05 -. "extend" .-> UC01
    UC07 -. "extend" .-> UC01

    UC03 -- "include" --> UC02
    UC03 -- "include" --> UC04
    UC05 -- "include" --> UC02
    UC05 -- "include" --> UC04
    UC07 -- "include" --> UC06
